﻿using System;

namespace Scenario_Editor.AddinManager
{
    public interface ITerrainPaintingControl
    {
        #region Public Properties

        /// <summary>
        /// Only when this is true polygons of terrain or imported mesh in modelimporter can be painted.
        /// </summary>
        bool PaintMaterial { get; set; }

        /// <summary>
        /// Only when this is true vertices of terrain or imported mesh in modelimporter can be painted/set.
        /// </summary>
        bool PaintVertexData { get; set; }

        /// <summary>
        /// Gives the TextureBrushSize to the Scenery Editor.
        /// </summary>
        float TextureBrushSize { get; set; }

        Engine.Graphics.IGameVertex VertexData { get; set; }

        #endregion Public Properties

        #region Public Methods

        Engine.Graphics.Material GetCurrentTerrainMaterial();

        void MaterialManagerChanged(object sender, EventArgs e);

        void OnMaterialChange(object material, EventArgs e);

        void UseTool(SharpDX.Vector3 PositionIn3dRoom, Engine.Engine engine, float viewDistance, Tools.RoadV2 roadbuilderV2, Tools.ObjectPlacerControl objectPlacer);

        #endregion Public Methods
    }
}